export interface ArticleInfo {
  article: Article;
}
export interface Article {
  slug: string;
  title: string;
  description: string;
  body: string;
  tagList: string[];
  createdAt: string;
  updatedAt: string;
  favorited: boolean;
  favoritesCount: number;
  author: Author;
}
export interface Author {
  username: string;
  bio: string;
  image: string;
  following: boolean;
}
export interface Tag {
  tags: string[];
}

export interface MultiArticles {
  articles: Article[];
  articlesCount: number;
}
export interface LoginReq {
  user: UserLoginBody;
}
export interface UserLoginBody {
  email: string;
  password: string;
}

export interface LoginRsp{
  user: UserRsp;
}
export interface UserRsp {
  email: string;
  token: string;
  username: string;
  bio: string;
  image?: any;
}
export interface RegisterReq {
  user: UserRigesterReq;
}
export interface UserRigesterReq {
  username: string;
  email: string;
  password: string;
}
export interface SingleArticle {
  article: Article;
}

export interface MultiComment {
  comments: Comment[];
}
export interface Comment {
  id: number;
  createdAt: string;
  updatedAt: string;
  body: string;
  author: Author;
}
export interface ProfileReq {
  profile: Profile;
}
export interface Profile {
  username: string;
  bio: string;
  image: string;
  following: boolean;
}
export interface ArticleCreateReq {
  article:ArticleCreate;
}
export interface ArticleCreate {
  title: string;
  description: string;
  body: string;
  tagList: string[];
}
export interface UserUpdateReq {
  user: UserRsp;
}
export interface AddComment {
  comment: CommentBody;
}
export interface CommentBody {
  body: string;
}
export interface SingleComment {
  comment: Comment;
}
